using System.Runtime.InteropServices;

namespace EOSDigital.SDK
{
	public struct VolumeInfo
	{
		public int StorageType;

		public FileAccess Access;

		public long MaxCapacity;

		public long FreeSpaceInBytes;

		[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
		public string VolumeLabel;

		public static bool operator ==(VolumeInfo x, VolumeInfo y)
		{
			if (x.StorageType == y.StorageType && x.Access == y.Access && x.MaxCapacity == y.MaxCapacity && x.FreeSpaceInBytes == y.FreeSpaceInBytes)
			{
				return x.VolumeLabel == y.VolumeLabel;
			}
			return false;
		}

		public static bool operator !=(VolumeInfo x, VolumeInfo y)
		{
			return !(x == y);
		}

		public override bool Equals(object obj)
		{
			if (obj is VolumeInfo)
			{
				return this == (VolumeInfo)obj;
			}
			return false;
		}

		public override int GetHashCode()
		{
			int num = -2128831035;
			num *= (0x1000193 ^ this.StorageType.GetHashCode());
			num *= (0x1000193 ^ this.Access.GetHashCode());
			num *= (0x1000193 ^ this.MaxCapacity.GetHashCode());
			num *= (0x1000193 ^ this.FreeSpaceInBytes.GetHashCode());
			return num * (0x1000193 ^ this.VolumeLabel.GetHashCode());
		}
	}
}
